笔试题 - 前端

1、正则表达式 /a+(bab)?(caac)*/ ,下列选项中是该正则表达式的子集是? :C

第一步:理解题目。

题目中的 a+ 代表 字符“a” 出现1次或者若干次,(bab)? 代表 字符 “bab” 出现一次或者0次,(caac)* 表示重复了“0或者若干次”的字符“caac”,即 字符“caac”出现0次或者若干次 。

若改题目为/李+太?白*/,可匹配:李、李太、李白、李太白、李李、李李太、李李白白、李李太白白等。

第二步:理解选项,选出子集。

A /(bab)(caca)/ :匹配含有 “babcaca” 的字符串,不是题目中的 “babcaac”, 就好比是在找 “太星” 而不是”太白”,而且没有a,所以该正则匹配的结果不可能出现在题目匹配的结果中,错误。

B /a(bab){2}(caac)*/ :其中(bab){2} 表示 字符串“bab”必须出现2次,与题干正则显然不同,错误。

C /a{2}/ :其中(a){2} 表示 字符“a”必须出现2次,就好比 “李李” ,属于题目匹配结果的子集,正确。

D /a+(bab){0,1}(ca)+(ca)/ :前半部分正确,后半部分(ca)+(ca)明显错误。

E /a(^bab)+(caac){1,}/:正则本身有误,(^bab)匹配以”bab”开头的字符串,但前面还有a,也就是匹配以a开头的字符串,两者矛盾。

F /a+(babc){2,}(acc){1,}/:分组和区间值都不正确。

2、目前 HTTP2 协议已经逐渐普及到日常服务器中,以下对于 HTTP2 协议描述正确的是:ABCD

http2的新特性:多路复用 二进制分帧 首部压缩(Header Compression) 服务端推送(Server Push)

  • 所有http请求都建立在一个TCP请求上,实现多路复用
  • 可以给请求添加优先级
  • 服务器主动推送 server push
  • HTTP2的头部会减小,从而减少流量传输

3、请问下面哪种方式可以在不改变原来数组的情况下,拷贝出数组 b ,且满足 b!=a 。例如数组 a 为 [1,2,3] 。 :BD

  • let b=a;
  • let b=a.slice();
  • let b=a.splice(0,0);
  • let b=a.concat();

A选项 b=[1,2,3] b==a

B选项 b=[1,2,3] b!=a

C选项 b=[] b!=a

D选项 b=[1,2,3] b!=a